package com.example.springboot.service;

/*
 * 功能：审批界面
 * 日期：2024-5-9 20:19
 * 作者：RabbitQ
 */

import cn.hutool.core.util.StrUtil;
import com.example.springboot.entity.Approve;
import com.example.springboot.mapper.ApproveMapper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;

@Service
public class ApproveService {

    @Resource
    ApproveMapper approveMapper;

    //审批界面——选择所有审批数据
    public List<Approve> selectAllApprove() {
        List<Approve> approveList = new ArrayList<>();
        approveList = approveMapper.selectAllApprove();
        return approveList;
    }


    //审批界面——更新签名图url——通过数据的id
    public void updateUrlByID(Approve approve) {

        //1.审批状态改为——已审批
        approve.setApproveStatus("已审批");

        //2.审批日期——当前日期
        // 获取当前日期
        LocalDate currentDate = LocalDate.now();
        // 创建日期格式化器
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        // 使用格式化器格式化日期
        String formattedDate = currentDate.format(formatter);

        approve.setApproveDate(formattedDate);

        //3.更新url
        approveMapper.updateUrlByID(approve);
    }


    //审批界面——更新审批状态——通过数据的id
    public void updateStatusByID(Approve approve) {

        approve.setApproveStatus("待审批");

        approveMapper.updateStatusByID(approve);
    }

    //审批界面——撤销审批——通过数据的id
    public void deleteApproveByID(Approve approve) {
        approveMapper.deleteApproveByID(approve);
    }


    //审批界面——通过负责人和状态进行筛选
    public List<Approve> selectByChargerStatus(String charger, String status) {
        if( !(StrUtil.isBlank(charger)) && !(StrUtil.isBlank(status)) ){
            return approveMapper.selectByChargerStatus(charger, status);
        }else if((StrUtil.isBlank(charger)) && !(StrUtil.isBlank(status))){
            return approveMapper.selectByStatus(status);
        }else{
            return  approveMapper.selectByCharger(charger);
        }

    }
}
